//
//  change_ghost_mode.hpp
//  EnTT Pacman
//
//  Created by Indiana Kernick on 29/9/18.
//  Copyright © 2018 Indiana Kernick. All rights reserved.
//

#ifndef SYS_CHANGE_GHOST_MODE_HPP
#define SYS_CHANGE_GHOST_MODE_HPP

#include <entt/entity/fwd.hpp>

// This is called when pacman eats an energizer. All ghosts in chase or scatter
// mode will be put into scared mode. Ghosts that are already in scared mode
// will have there scared timer extended
void ghostScared(entt::registry &);

// Ghosts in scared mode have a timer. When the timer runs out, they will enter
// chase mode.
// @brief 处于恐惧模式的鬼有一个计时器 当计时器耗尽他们进入追逐模式
void ghostScaredTimeout(entt::registry &);

// This is called when pacman collides with a ghost that is in scared mode.
// This system puts the ghost into eaten mode
// @brief 鬼害怕时与玩家碰撞就会发生
// @param entt注册表
// @param entt实体
void ghostEaten(entt::registry &, entt::entity);

// Puts all of the ghosts into scatter mode
// @brief 鬼被驱散 从追逐模式切换到驱散模式
// @param entt注册表
void ghostScatter(entt::registry &);

// Puts all of the ghost into chase mode
// @brief 鬼追逐玩家 从驱散模式切换到追逐模式
// @param entt注册表
void ghostChase(entt::registry &);

#endif
